package cn.datastruct.five;

import java.util.Arrays;

/*
 *   选择排序：
 *       从左开始，依次选取最小的数并交换
 * */
public class SelectSortDemo {
    public static void selectSort(int[] arr) {
        int length = arr.length;//数组长度
        for (int i = 0; i < length - 2; i++) {
            int min = i;
            for (int j = i + 1; j < length; j++) {
                if (arr[min] > arr[j]) {
                    min = j;
                }
            }
//            int item = arr[i];
//            arr[i] = arr[min];
//            arr[min] = item;
            if(i != min) {
                arr[i] = arr[i] ^ arr[min];
                arr[min] = arr[i] ^ arr[min];
                arr[i] = arr[i] ^ arr[min];
            }
        }
    }

    public static void main(String[] args) {
        int[] arr = {-1,10, 2, 10, 20, 201, 134, 123};
        selectSort(arr);
        int length = arr.length;
        for (int i = 0; i < length; i++) {
            System.out.printf("%d\t", arr[i]);
        }
//        int a = -1;
//        int b = -1;
//        a = a ^ b;
//        b = a ^ b;
//        a = a ^ b;
//        System.out.println(a);
//        System.out.println(b);
    }
}
